package org.jypj.dev.dao;

import org.jypj.dev.model.OeoProblem;
import org.jypj.dev.util.Page;

import java.util.List;
import java.util.Map;

public interface OeoProblemDao {

    /**
    * 保存
    * 所有字段全都保存
    * @param oeoProblem
    * @return 保存的数量
    */
    int saveOeoProblem(OeoProblem oeoProblem);

    /**
    * 根据ID删除
    * @param id 主键ID
    * @return 删除记录数
    */
    int deleteOeoProblemById(String id);

    /**
    * 根据对象删除
    * @param oeoProblem
    * @return 删除记录数
    */
    int deleteOeoProblemByObject(OeoProblem oeoProblem);

    /**
    * 更新所有字段
    * @param oeoProblem
    * @return 保存后的对象包括ID
    */
    int updateOeoProblem(OeoProblem oeoProblem);

    /**
    * 按ID查询
    * @param id 主键ID
    * @return OeoProblem
    */
    OeoProblem selectOeoProblemById(String id);

    /**
    * 分页查询 包含条件
    * @param page 分页对象
    * @param map  查询条件
    * @return  List<OeoProblem>
    */
    List<OeoProblem> selectOnePageByMap(Page page, Map<String, Object> map);

    /**
    * 分页查询 包含对象条件
    * @param page 分页对象
    * @param oeoProblem 查询对象
    * @return List<OeoProblem>
    */
    List<OeoProblem> selectOnePageByOeoProblem(Page page, OeoProblem oeoProblem);

    /**
    * 按条件查询全部的
    * @param map  查询条件
    * @return  List<OeoProblem>
    */
    List<OeoProblem> selectAllByMap(Map<String, Object> map);


    /**
    * 按条件查询全部的
    * @param oeoProblem 查询对象
    * @return  List<OeoProblem>
    */
    List<OeoProblem> selectAllByOeoProblem(OeoProblem oeoProblem);

    /**
    * 按条件查询单个对象
    * @param map  查询条件
    * @return  OeoProblem
    */
    OeoProblem selectObjectByMap(Map<String, Object> map);

    /**
    * 按条件查询单个对象
    * @param oeoProblem  查询条件
    * @return  OeoProblem
    */
    OeoProblem selectObjectByOeoProblem(OeoProblem oeoProblem);
}
